package com.qq.open.weibo;

import java.io.IOException;

import org.apache.log4j.Logger;

import com.qq.open.common.OpenQqConstants;
import com.qq.open.common.OpenQqUtils;
import com.qq.open.weibo.bean.param.WeiBoGetRepostListParamBean;


/** 
 * 获取一条微博的转播或评论信息列表
 * 
 * @author HaoLiang
 *
 */
public class WeiBoGetRepostList {

	/** QQ互联工具类 */
	private OpenQqUtils oqu = new OpenQqUtils(); 
	
	/** 日志 */
	private Logger log = Logger.getLogger(WeiBoGetRepostList.class);
	
	
	/**
	 * 获取一条微博的转播或评论信息列表
	 * 
	 * @param paramBean 参数
	 * @return 信息列表
	 * @throws IOException
	 */
	public String getRepostList(WeiBoGetRepostListParamBean paramBean) throws IOException {
		// 日志
		log.info("获取一条微博的转播或评论信息列表 开始...");
		
		// 接口地址和参数
		String interfaceUrl = this.getInterfaceUrl(paramBean);
		
		// 请求接口 返回json数据
		String jsonData = oqu.doGet(interfaceUrl);
		
		// 日志
		log.info("获取一条微博的转播或评论信息列表 结束...");
		
		return jsonData;
	}
	
	
	/**
	 * 获取接口URL
	 * 
	 * @param paramBean 参数
	 * @return 接口地址
	 */
	private String getInterfaceUrl(WeiBoGetRepostListParamBean paramBean) {
		
		// 接口地址
		StringBuilder interfaceUrl = new StringBuilder();
		interfaceUrl.append(OpenQqConstants.WEIBO_GET_REPOST_LIST_URL);
		
		// AccessToken
		interfaceUrl.append("?access_token=" + paramBean.getAccessToken());
		
		// AppId
		interfaceUrl.append("&oauth_consumer_key=" + oqu.getConfigValue("qq.appid"));
		
		// OpenId
		interfaceUrl.append("&openid=" + paramBean.getOpenId());
		
		// 标识获取的是转播列表还是点评列表
		interfaceUrl.append("&flag=" + paramBean.getFlag());
		
		// 转发或点评的源微博的ID
		interfaceUrl.append("&rootid=" + paramBean.getRootId());
		
		// 分页标识
		interfaceUrl.append("&pageflag=" + paramBean.getPageFlag());
		
		// 本页起始时间
		interfaceUrl.append("&pagetime=" + paramBean.getPageTime());
		
		// 每次请求记录的条数
		interfaceUrl.append("&reqnum=" + paramBean.getReqNum());
		
		// 翻页时使用
		interfaceUrl.append("&twitterid=" + paramBean.getTwitterId());
		
		// 定义API返回的数据格式
		interfaceUrl.append("&format=json");
		
		
		return interfaceUrl.toString();
	}
}
